"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/3 10:47
@Description : 设计模式
设计模式是经典的编程思想
常见的设计模式23种
1. 单例模式    懒汉模式  饿汉模式
2. 工厂模式    隐藏对象的创建细节    便于对象的管理   实例工厂
3. 代理模式

"""
from abc import ABC, abstractmethod


# 支付环境  支付宝  微信支付
class Payment(ABC):
    # 支付方法
    @abstractmethod
    def pay(self, money):
        pass

# 支付宝支付
class Alipay(Payment):
    def pay(self, money):
        print(f'支付宝支付:{money}')


# 微信支付
class WechatPay(Payment):
    def pay(self, money):
        print(f'微信支付:{money}')


# 创建实例工厂
class PaymentFactory:

    @staticmethod  # 静态工厂模式
    def create_payment_instance(payment):
        if payment == 'Alipay':
            # 隐藏支付细节   参数初始化
            return Alipay()
        elif payment == 'Wechat':
            return WechatPay()


if __name__ == '__main__':
    # 传统方式 创建对象   项目环境下  多个位置多需要使用该对象
    payment_instance: Payment = PaymentFactory.create_payment_instance('Wechat')
    payment_instance.pay(100)
